package com.example.kugou.mapper;

import com.example.kugou.pojo.Sing;
import com.example.kugou.pojo.Singer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface SingMapper {
    /**
     * 根据id查询歌曲,并播放
     * @param id
     * @return
     */
    Sing selectById(@Param("id")int id);
    /**
     * 查询所有歌曲
     */
    List<Sing> SelectSing();

    /**
     * 查询所有歌曲
     */
    List<Sing> SelectAllSing(@Param("SingName") String SingName);

    /**
     * 模拟榜单    云音乐飙升榜   云音乐新歌榜   网易原创歌曲
     */
    List<Sing> SelectByFirstTen();

    List<Sing> SelectByCenterTen();

    List<Sing> selectByLastTen();

    /**
     * 根据编号查询歌曲，顺道查询出它是那个人演唱的
     * @param id
     * @return
     */
    Sing selectSingById(int id);

    /**
     * 传入一个月之前的今天时间，查询最近一个月的歌曲
     * @param date
     * @return
     */
    List<Sing> selectNewSings(Date date);


    /**
     * 根据歌单的编号查询全部的歌曲
     * @param song_sheetid
     * @return
     */
    List<Sing> selectBysong_sheetid(@Param("song_sheetid") int song_sheetid);

    //    根据时间排序查询新歌
    List<Sing> selectSingsOrderByTime();


    //飙升榜
    List<Sing> selectOrderById();

//增加歌曲
int insertSing(Sing sing);


    //根据歌手的编号查询他的全部歌曲
    List<Sing> selectSingBySingerId(int singerId);

    //我的主页   听歌排行前7首
    List<Sing> selectPaiHang();

    /**
     * 根据编号删除歌曲
     * @param nid
     * @return
     */
    int deleteBySing(Integer nid);

    /**
     * 根据歌曲名称查询
     * @param name
     * @return
     */
    List<Sing> selectName(String name);

}
